#include "StdAfx.h"
#include "HWFont.h"

#include "Graphics.h"

int CHWFont::m_fontData[80] = {
	0x7C,	// .#####..
	0x86,	// #....##.
	0x8A,	// #...#.#.
	0x92,	// #..#..#.
	0xA2,	// #.#...#.
	0xC2,	// ##....#.
	0x82,	// #.....#.
	0x7C,	// .#####..

	0x08,	// ....#...
	0x18,	// ...##...
	0x28,	// ..#.#...
	0x08,	// ....#...
	0x08,	// ....#...
	0x08,	// ....#...
	0x08,	// ....#...
	0x3C,	// ..####..

	0x7C,	// .#####..
	0x82,	// #.....#.
	0x02,	// ......#.
	0x02,	// ......#.
	0x7C,	// .#####..
	0x80,	// #.......
	0x80,	// #.......
	0xFE,	// #######.

	0x7C,	// .#####..
	0x82,	// #.....#.
	0x02,	// ......#.
	0x1C,	// ...###..
	0x02,	// ......#.
	0x02,	// ......#.
	0x82,	// #.....#.
	0x7C,	// .#####..

	0x08,	// ....#...
	0x10,	// ...#....
	0x20,	// ..#.....
	0x40,	// .#......
	0x84,	// #....#..
	0xFE,	// #######.
	0x04,	// .....#..
	0x04,	// .....#..

	0xFE,	// #######.
	0x80,	// #.......
	0x80,	// #.......
	0x7C,	// .#####..
	0x02,	// ......#.
	0x02,	// ......#.
	0x82,	// #.....#.
	0x7C,	// .#####..

	0x7C,	// .#####..
	0x82,	// #.....#.
	0x80,	// #.......
	0xFC,	// ######..
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x7C,	// .#####..

	0xFE,	// #######.
	0x02,	// ......#.
	0x04,	// .....#..
	0x08,	// ....#...
	0x10,	// ...#....
	0x10,	// ...#....
	0x20,	// ..#.....
	0x20,	// ..#.....

	0x7C,	// .#####..
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x7C,	// .#####..
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x7C,	// .#####..

	0x7C,	// .#####..
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x82,	// #.....#.
	0x7E,	// .######.
	0x02,	// ......#.
	0x82,	// #.....#.
	0x7C	// .#####..
	};
	
	
int CHWFont::getFontIndex(char ch)
{
	if ((ch>='0')&&(ch<='9'))
		return (ch-'0')* 8;

	return -1;
}
	
void CHWFont::drawString(CGraphics *g, char *str, int x, int y)
{
	for (int i=0;str[i];i++)
	{
		int p = getFontIndex(str[i]);
		
		if (p>=0)
		{
			for (int j=0;j<8;j++)
			{
				for (int k=0;k<8;k++)
				{
					if (m_fontData[p+j] & (0x80>>k))
						g->putPixel(x+k, y+j);
				}
			}
			
			x+=8;
		}
	}
}
